#include <sstream>
#include <stdlib.h>
#include <iostream>
#include <fstream>

#include "LauncherCanales.h"
#include "../common/StringUtils.h"
#include "../logger/logger.h"
#include "../IPC/MessageQueue.h"
#include "../middleware/MiddlewareCommon.h"
#include "../middleware/CommunicationVendedor.h"

int main(int argc, char **argv)
{
	CLogger::create("Launcher canales agente");

//	//TODO arreglar
//	middleware::CommunicationVendedor::AvailableVendedorQueue availableVendedorQueue
//	= middleware::CommunicationVendedor::AvailableVendedorQueue::get(
//			middleware::CommunicationVendedor::AVAILABLE_QUEUE_PATH,middleware::CommunicationVendedor::AVAILABLE_QUEUE_KEY_CLI_SIDE);
//
//	while (true)
//	{
//		middleware::CommunicationVendedor::AvailableVendedorStruct handshake;
//		handshake = availableVendedorQueue.get(1);
//
//		CLogger::log("Creador Canales Clientes: Llego el cliente: "+ StringUtils::NumberToString(handshake.clientId),
//				LogLevelEnum::INFO);
//
//		pid_t pid = fork();
//		if (pid == 0)
//		{
//			execlp("./out/channel_out_cli", "channel_out_cli",
//					StringUtils::NumberToString(handshake.clientId).c_str() , (char *) 0);
//			CLogger::log("CreadorCanalesCliente: Execlp ./channel_out_cli error",
//							LogLevelEnum::FATAL);
//			exit(-1);
//		}
//
//		pid_t pid2 = fork();
//		if (pid2 == 0)
//		{
//			execlp("./out/channel_in_cli", "channel_in_cli",
//					StringUtils::NumberToString(handshake.clientId).c_str(), (char *) 0);
//			CLogger::log("canalEntradaCliente: Execlp ./canalEntradaCliente error",
//							LogLevelEnum::FATAL);
//
//			exit(-1);
//		}
//	}

	launchChannel("mockChannel");

	return 0;
} 
